From 1e63e2b6046ffcdc8127da028d122fa414c6a0d7 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期二, 25 六月 2024 17:06:23 +0800
Subject: [PATCH] update som
---
jrj/project/viewobject/shoppingcart.view.hpp | 2
jrj/xframe/xcontrol/ximageview.hpp | 8
jrj/project/business/Product.list.cpp | 1590 +++++++++++++++++++++++++++++++++++++++++++++++++++
jrj/xframe/xcontrol/xcheckbox.hpp | 177 +++++
jrj/xframe/wobject/xaserver.hpp | 24
jrj/ext-jrj/ext-jrj.vcxproj.filters | 21
6 files changed, 1,796 insertions(+), 26 deletions(-)
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.filters b/jrj/ext-jrj/ext-jrj.vcxproj.filters
index f054b1e..34c20e3 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj.filters
+++ b/jrj/ext-jrj/ext-jrj.vcxproj.filters
@@ -52,6 +52,9 @@
<Filter Include="project\viewobject">
<UniqueIdentifier>{1204eabe-475a-4239-9711-8e90447311db}</UniqueIdentifier>
</Filter>
+ <Filter Include="project\wface">
+ <UniqueIdentifier>{3a03feca-5a89-4ea0-8ebf-c396a17eccfb}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
@@ -257,15 +260,6 @@
<ClCompile Include="..\xframe\src\xstring.cpp">
<Filter>xframe\src</Filter>
</ClCompile>
- <ClCompile Include="..\project\start.vframe.vbusiness.cpp">
- <Filter>project</Filter>
- </ClCompile>
- <ClCompile Include="..\project\vindexform.cpp">
- <Filter>project</Filter>
- </ClCompile>
- <ClCompile Include="..\project\vindexmenu.cpp">
- <Filter>project</Filter>
- </ClCompile>
<ClCompile Include="..\project\viewobject\view.base.hpp">
<Filter>project\viewobject</Filter>
</ClCompile>
@@ -302,5 +296,14 @@
<ClCompile Include="..\project\business\Supplier3.list.cpp">
<Filter>project\business</Filter>
</ClCompile>
+ <ClCompile Include="..\project\start.vframe.vbusiness.cpp">
+ <Filter>project\wface</Filter>
+ </ClCompile>
+ <ClCompile Include="..\project\vindexform.cpp">
+ <Filter>project\wface</Filter>
+ </ClCompile>
+ <ClCompile Include="..\project\vindexmenu.cpp">
+ <Filter>project\wface</Filter>
+ </ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
diff --git a/jrj/project/business/Product.list.cpp b/jrj/project/business/Product.list.cpp
index e69de29..89e9de7 100644
--- a/jrj/project/business/Product.list.cpp
+++ b/jrj/project/business/Product.list.cpp
@@ -0,0 +1,1590 @@
+#include <wobject/xstring.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/ximageview.hpp>
+
+#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+#include "viewobject/saleorder.view.hpp"
+#include "viewobject/quote.view.hpp"
+#include "viewobject/shoppingcart.view.hpp"
+#include "viewobject/productLibrary.view.hpp"
+#include "xcontrol/xcheckbox.hpp"
+#include "xcontrol/xshtml.hpp"
+
+class __declspec(dllexport) ProductLibrary4Win : public xframe
+{
+public:
+ //产品库产品列表
+ xdwgrid dw_list;
+ //购物车产品列表
+ xdwgrid dwc_list;
+
+ //产品缓存对象
+ xdataset g_xdoc_product;
+ xdataset g_xdoc_shoppingcart;
+
+ xcombobox cbx_goodscar;
+ //是否多选
+
+ xnode m_agentNode; //Agent Condition
+ xtreeview tv_folder;
+ xstring agentFor;
+ KXMLDOMElement imageElement;
+ xstring m_customer;
+
+public:
+ int FillGoodsCarList()
+ {
+ xcombobox xc = GetControl(L"frame:cbx_goodscar");
+ if (!xc) return 0;
+ xml x = ShoppingCartView::GetRoleList();
+ if (!x) return 0;
+ xc.SetText(L"==选择购物车==L");
+
+ KXMLDOMNodeList nlist = x.selectNodes(L"//item");
+ int len = nlist.length();
+ for (int i = 0; i < len; i++)
+ {
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"name");
+ xc.AddItem( name);
+ }
+ return 1;
+ }
+
+ int SetAgent()
+ {
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ if (m_agentNode)
+ {
+ SetAgentNode(anode, m_agentNode);
+ }
+ else
+ {
+ KXMLDOMElement xframeElement = GetElement();
+ KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[@for='" + agentFor + L"']/*");
+ if (agent)
+ {
+ bstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode, s);
+ //FillGoodsCarList();
+ }
+ }
+ return 1;
+ }
+
+ //焦点激活处理函数
+ int OnSetFocus(TEvent * evt, int param)
+ {
+ //重置工具条
+ SetAgent();
+ return 1;
+ }
+
+ KXMLDOMElement OnGetCarListRowElement(int row = 0)
+ {
+ if (row < 1) row = dwc_list.GetRow();
+ if (row < 1 || row > dwc_list.GetRowCount()) return 0;
+ KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row);
+ return e;
+ }
+
+ int OnShowImage(xstring skuid)
+ {
+ ximageview im = GetControl(L"im1");
+ //im.RemoveImage();
+ im.Reset();
+
+ xml xp ;
+ xaserverarg arg_pic;
+ arg_pic.AddArg(L"SKUID", skuid);
+ if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1)
+ {
+ trace(xstring(L"xxx")+xp.xml());
+ }
+ else
+ {
+ //trace(skuid+L" "+xp.GetXml());
+ imageElement = xp.documentElement();
+ KXMLDOMNodeList nlistp = xp.selectNodes(L"ImageList/image");
+ int lenp = nlistp.length();
+ for (int ip = 0; ip < lenp; ip++)
+ {
+ KXMLDOMElement xitem = nlistp.item(ip);
+ xstring picname = xitem.selectSingleNode(L"PicPath").text();
+ xstring goodno = xitem.selectSingleNode(L"GoodsNo").text();
+ if (picname == L"/business/products/Thumbs//")
+ picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
+ im.AddImages(picname, (LPTSTR)L"");
+ }
+ im.Redraw();
+ //win32::SendMessage(im.GetId(),0x000f,0,1);
+ //win32::InvalidateRect(im.GetId(),cast(0 as ref xrect),true);
+ }
+ return 1;
+ }
+
+ int OnShowImage(xstring skuid, xstring customerItemNo)
+ {
+ ximageview im = GetControl(L"im1");
+ //im.RemoveImage();
+ im.Reset();
+
+ xml xp ;
+ xaserverarg arg_pic ;
+ arg_pic.AddArg(L"SKUID", skuid);
+ arg_pic.AddArg(L"CustomerID", m_customer);
+ arg_pic.AddArg(L"CustomerItemNo", customerItemNo);
+
+ if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1)
+ {
+ trace(L"error:" + xstring(xp.xml(),true));
+ }
+ else
+ {
+ imageElement = xp.documentElement();
+ KXMLDOMNodeList nlistp = xp.selectNodes(L"ImageList/image");
+ int lenp = nlistp.length();
+ for (int ip = 0; ip < lenp; ip++)
+ {
+ KXMLDOMElement xitem = nlistp.item(ip);
+ bstring picname = xitem.selectSingleNode(L"PicPath").text();
+ bstring goodno = xitem.selectSingleNode(L"GoodsNo").text();
+ if (picname == L"/business/products/Thumbs//")
+ picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
+ im.AddImages(picname, L"");
+ }
+ im.Redraw();
+ }
+ return 1;
+ }
+
+ int OnRowChanged(TEvent * evt, int p)
+ {
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ int row = hdr.row;
+
+ xshtml xs = GetControl(L"html_detail");
+ xstring html = makeHtml(row);
+ xs.SetContent(html);
+ xs.Redraw();
+
+ xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+ OnShowImage(id);
+ trace(id);
+ return 1;
+ }
+
+ int OnGoodsCarRowChanged(TEvent * evt, int p)
+ {
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ int row = hdr.row;
+
+ xshtml xs = GetControl(L"html_detail");
+ xstring html = makeGoodscarHtml(row);
+ xs.SetContent(html);
+ xs.Redraw();
+ if (m_customer)
+ {
+ xstring id = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID");
+ xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+ OnShowImage(id, customerItemNo);
+ }
+
+ return 1;
+ }
+
+ int DeleteRow(int row)
+ {
+ int IDOK = 1;
+ int MB_OKCANCEL = 1;
+ int MB_ICONQUESTION = 32;
+ if (MessageBoxW(GetHWND(), L"确认删除指定的项,删除后将不能恢复?", L"提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1;
+ xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+
+ if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0);
+ return 1;
+ }
+
+ int SetSelectState(xdwgrid dw_obj, int state)
+ {
+ if (state == 1)
+ {
+ dw_obj.SetSelectionMode(3);
+ }
+ else if (state == -1)
+ {
+ dw_obj.SelectRow(0, false);
+ dw_obj.SetSelectionMode(0);
+ }
+ return 1;
+ }
+ int OnCkbCLick(TEvent * evt, int p)
+ {
+ xcheckbox cbx_1 = GetControl(L"frame:cbx1");
+ int state = cbx_1.GetCheck();
+ return SetSelectState(dw_list, state);
+ }
+
+ int OnCkbCLick2(TEvent * evt, int p)
+ {
+ xcheckbox cbx_2 = GetControl(L"frame:cbx2");
+ int state = cbx_2.GetCheck();
+ return SetSelectState(dwc_list, state);
+ }
+
+ xml GetGoodsPropList(xstring guid)
+ {
+ xml x;
+ xaserverarg arg;
+ arg.AddArg(L"guid", guid);
+ if (xurl::get(L"/sale/data/SO/goods/goodsprop/list", arg.GetString(), x) != 1)
+ {
+ bstring error = x.text();
+ alert(error);
+ }
+ return x;
+ }
+
+ xml GetGoodsPropListEx(xstring guid)
+ {
+ xml x;
+ xstring fields = L"<data>";
+ //fields +=L"<field name='HighestPrice' label='最高价'/>";
+ //fields +=L"<field name='LowestPrice' label='最低价'/>";
+
+ //fields +=L"<field name='BulkPrice' label='散货价'/>";
+ //fields +=L"<field name='CardPrice' label='纸卡价'/>";
+ //fields +=L"<field name='BuyPrice' label='采购价'/>";
+ //fields +=L"<field name='SupplierID' label='货源'/>";
+
+ fields += L"<field name='Packing' label='包装方式'/>";
+ fields += L"<field name='PackingRate' label='每箱数量'/>";
+ fields += L"<field name='VolumeDesc' label='包装尺码'/>";
+ fields += L"<field name='GWPerPkg' label='毛重'/>";
+ fields += L"<field name='NWPerPkg' label='净重'/>";
+ //fields +=L"<field name='DeveloperID' label='开发人员'/>";
+ fields += L"<field name='AttributeValue_1' label='产品属性'/>";
+ //fields +=L"<field name='Remark' label='备注'/>";
+
+ fields += L"</data>";
+ x.loadXML(fields);
+
+ return x;
+ }
+
+ xstring makeHtml(int row)
+ {
+ xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+ xml x = GetGoodsPropList(id);
+ xml x1 = GetGoodsPropListEx(id);
+
+ xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"SKUNo") +
+ L"</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"RefNo") +
+ L"</span></div>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >公司型号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"GoodsNo") +
+ L"</span></div>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"CName") +
+ L"</span></div>";
+ if (dw_list.GetItemString(row, L"CSpec") != L"")
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"CSpec") +
+ L"</span></div>";
+
+ KXMLDOMNodeList fieldsEx = x1.selectNodes(L"data/field");
+ xstring ls_detail = L"";
+ xstring ls_item = L"";
+ xstring name;
+ xstring label;
+ int len = fieldsEx.length();
+ int i = 0;
+
+ for (i = 0; i < len; true)
+ {
+ int cnt = 0;
+ ls_item = L"";
+ while (cnt < 2)
+ {
+ name = fieldsEx.item(i).selectSingleNode(L"@name").text();
+ label = fieldsEx.item(i).selectSingleNode(L"@label").text();
+ ls_item += L"<td>" + label + L"</td>" + L"<td style='text-align:center'>" + g_xdoc_product.getData(0, L"data/Item", row, name) + L"</td>";
+ cnt++;
+ i++;
+ if (i == len)break;
+ }
+ ls_detail += L"<tr>" + ls_item + L"</tr>";
+ }
+ html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" +
+ + L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
+ + ls_detail
+ + L"</table>"
+ + L"</div>";
+
+ xstring ls_star = L"";
+ KXMLDOMNodeList fields = x.selectNodes(L"data/field");
+ len = fields.length();
+
+ ls_detail = L"";
+ if (len > 0)
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >技术要求:</span></div>";
+ for (i = 0; i < len; true)
+ {
+ ls_item = L"";
+
+ int count = 0;
+ while (count < 2)
+ {
+ name = fields.item(i).selectSingleNode(L"@name").text();
+ label = fields.item(i).selectSingleNode(L"@label").text();
+ if (name == L"QualityTerm" || name == L"PackTerm" || label == L"质量" || label == L"包装质量" || label == L"技术要求")
+ {
+ i++;
+ if (i >= len)count = 2;
+ continue;
+ }
+ else if (g_xdoc_product.getData(0, L"data/Item", row, name) == L"")
+ {
+ KXMLDOMNodeList options = fields.item(i).selectNodes(L"item");
+ int tlen = options.length();
+ xstring terms = L"";
+ for (int k = 0; k < tlen; k++)
+ {
+ if (xstring(options.item(k).text()))
+ {
+ if (k > 0) terms += L", L";
+ terms += (xstring)L"[" + options.item(k).text() + L"]";
+ }
+ }
+ ls_star += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >" + label + L"*:</span><span style='width:90;font-size:10pt'>" + terms + L"</span></div>";
+ }
+ else
+ {
+ ls_item = L"<td>" + label + L"</td>" + L"<td>" + g_xdoc_product.getData(0, L"data/Item", row, name) + L"</td>";
+ count++;
+ }
+ i++;
+ if (i >= len)count = 2;
+ }
+ ls_item = L"<tr>" + ls_item + L"</tr>";
+ ls_detail += ls_item;
+ }
+
+ html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" +
+ +L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
+ + ls_detail
+ + L"</table>"
+ + L"</div>";
+ if (dw_list.GetItemString(row, L"QualityTerm") != L"")
+ {
+ html += L"<div style='height:12px'/>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >质量:</span></div>";
+ html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"QualityTerm") + L"</span></div>";
+ }
+
+ if (dw_list.GetItemString(row, L"PackTerm") != L"")
+ {
+ html += L"<div style='height:12px'/>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >包装质量:</span></div>";
+ html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"PackTerm") + L"</span></div>";
+ }
+
+ if (g_xdoc_product.getData(0, L"data/Item", row, L"Remark") != L"")
+ {
+ //html += L"<div style='height:12px'/>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >备注:</span></div>";
+ html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + g_xdoc_product.getData(0, L"data/Item", row, L"Remark") + L"</span></div>";
+ }
+
+ html += L"<div style='height:24px'/>";
+
+ //星标项
+ html += ls_star;
+
+ //显示图片
+ /*
+ if (id != L"")
+ {
+ xml xp=new xml;
+ xp.setNativePointer(xml::CreateInstance());
+ xaserverarg arg_pic=new xaserverarg;
+ arg_pic.setNativePointer(arg_pic.CreateInstance());
+ arg_pic.AddArg(L"SKUID",id);
+ if(url::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU",arg_pic.GetString(),xp)!=1)
+ {
+ trace(L"xxx",xp.GetXml());
+ }else {
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >图片:</span>" ;
+ KXMLDOMElement ep= xp.selectSingleNode(L"ImageList");
+ if (ep)
+ {
+ if (ep.SelectNodes(L"image")){
+ KXMLDOMNodeList nlistp = ep.SelectNodes(L"image");
+ int ip=0;
+ int lenp = nlistp.length;
+ for(ip=0;ip<lenp;ip++)
+ {
+ KXMLDOMElement xitemp = nlistp.item(ip);
+ xstring filename = xitemp.selectSingleNode(L"PicPath").text;
+ //trace(filename);
+ html += L"<control visible='layer' controlclass='ximage' data='' src='http://192.168.7.241:7001" + filename +L"'/>";
+ }
+ }
+ }
+ html += L"</div>";
+ }
+ }else {
+ xstring picname = L"1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,L"ImgName"); //ItemID+L".jpg";
+ xstring str = picname.mid(0,2);
+ str = str.upper();
+ xstring serversrc =L"http://192.168.7.241:1001/business/products/chanpin/"+str+L"/"+picname;
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >图片:</span>";
+ html += L"<control visible='layer' controlclass='ximage' data='' src='"+ serversrc +L"'/></div>";
+ }
+ */
+ html += L"</body></html>";
+ //trace(html);
+ return html;
+ }
+
+ xstring makeGoodscarHtml(int row)
+ {
+ xstring No = dwc_list.GetItemString(row, L"RefNo");//获取属性值id
+ xml x = GetGoodsPropList(No);
+
+ xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"No") +
+ L"</span></div>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CName") +
+ L"</span></div>";
+ html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CSpec") +
+ L"</span></div>";
+
+ KXMLDOMNodeList fields = x.selectNodes(L"data/field");
+ int len = fields.length();
+ html += (xstring)L"<table>" +
+ L"<colgroup span='1' width='80'/>" +
+ L"<colgroup span='1' width='120'/>" +
+ L"<colgroup span='1' width='420'/>";
+ html += L"<tr>";
+ html += L"<td style='text-align:center'>编号</td><td style='text-align:center'>项目</td><td style='text-align:center'>内容</td>";
+ html += L"</tr>";
+ for (int i = 0; i < len; i++)
+ {
+ xstring name = fields.item(i).selectSingleNode(L"@name").text();
+ xstring label = fields.item(i).selectSingleNode(L"@label").text();
+ html += L"<tr>";
+ if (i == 0)
+ html += L"<td rowspan='" + xstring(len) + L"'>" + No + L"</td><td >" + label + L"</td><td >" + L"</td>";
+ else
+ html += L"<td >" + label + L"</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, name) + L"</td>";
+ html += L"</tr>";
+ }
+
+ html += L"<tr>";
+ html += L"<td rowspan='3'>" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"PackCode") + L"</td><td >包装方式</td><td >" +
+ g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CPack") + L"</td>";
+ html += L"</tr>";
+ html += L"<tr height='48'>";
+ html += L"<td >包装要求</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"PackQualityTerm") + L"</td>";
+ html += L"</tr>";
+ html += L"<tr>";
+ html += L"<td >侧唛</td><td ></td>";
+ html += L"</tr>";
+
+ html += L"<tr height='72'>";
+ html += L"<td>" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"QualityCode") + L"</td><td >质量要求</td><td >" +
+ g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"QualityTerm") + L"</td>";
+ html += L"</tr>";
+
+ html += L"</table>";
+
+ html += L"</body></html>";
+ return html;
+
+ }
+
+ int CarGoodsDelete()
+ {
+ return 1;
+ }
+
+ xstring Up(xstring name) {
+ xstring str = name.mid(0, 2);
+ str = str.toUpper();
+ return xaserver::UploadFile(L"product" + str, name + L".jpg", this.GetHWND(), L"", false);
+ }
+
+ int OnAddImage() {
+ if (m_customer != L"") return OnAddImageEx();
+ int row = dw_list.GetNextSelectRow(1);
+ if (row < 1) row = dw_list.GetRow();
+ if (row < 1 || row > dw_list.GetRowCount()) return 0;
+
+ KXMLDOMElement e = g_xdoc_product.getRowElement(L"data/Item", row);
+ xstring skuid = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+ xstring SKUNo = g_xdoc_product.getData(0, L"data/Item", row, L"SKUNo");
+ xstring id = ViewObject::GetGuid();
+ xstring ret1 = Up(id);
+ if (ret1 == L"-1") return -1;
+ if (ret1 == L"0")
+ {
+ alert(L"上传图片失败");
+ return -1;
+ }
+ xstring originfile = ret1;
+ xstring ext = originfile.right(7);
+ if (ext.find(L".") >= 0)
+ ext = ext.mid(ext.find(L".") + 1, 9999);
+ else
+ ext = L"jpg";
+
+ // 图片名加入数据库
+ xml x = new xml;
+ x.setNativePointer(xml::CreateInstance());
+ x.LoadXml(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
+ "<ProductPictureID>" + id + L"</ProductPictureID>" +
+ "<OriginFile>" + originfile + L"</OriginFile>" +
+ "<FileExt>" + ext + L"</FileExt>" +
+ "<SKUID>" + skuid + L"</SKUID>" +
+ "<Name>[" + SKUNo.trim() + L"]</Name>" +
+ "<FileName>" + id + L".jpg</FileName>" +
+ "</Item>"
+ );
+
+ xaserverarg arg = new xaserverarg;
+ arg.setNativePointer(arg.CreateInstance());
+ arg.AddArg(L"content", x.GetXml());
+ if (url::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
+ {
+ alert(x.text);
+ return -1;
+ }
+ dw_list.SetItemString(row, L"pic", L"*");
+ dw_list.Redraw();
+ //刷新一下界面,显示图片
+ OnShowImage(skuid);
+ return 1;
+ }
+
+ int OnAddImageEx() {
+ int row = dwc_list.GetNextSelectRow(1);
+ if (row < 1) row = dwc_list.GetRow();
+ if (row < 1 || row > dwc_list.GetRowCount()) return 0;
+
+ KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row);
+ xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID");
+ xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring");
+ xstring CustomerID = m_customer;
+ xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+ xstring id = ViewObject::GetGuid();
+ xstring ret1 = Up(id);
+ if (ret1 == L"-1") return -1;
+ if (ret1 == L"0")
+ {
+ alert(L"上传图片失败");
+ return -1;
+ }
+ xstring originfile = ret1;
+ xstring ext = originfile.right(7);
+ if (ext.find(L".") >= 0)
+ ext = ext.mid(ext.find(L".") + 1, 9999);
+ else
+ ext = L"jpg";
+
+ // 图片名加入数据库
+ xml x = new xml;
+ x.setNativePointer(xml::CreateInstance());
+ x.LoadXml(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
+ "<ProductPictureID>" + id + L"</ProductPictureID>" +
+ "<OriginFile>" + originfile + L"</OriginFile>" +
+ "<FileExt>" + ext + L"</FileExt>" +
+ "<SKUID>" + skuid + L"</SKUID>" +
+ "<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" +
+ "<CustomerID>" + CustomerID + L"</CustomerID>" +
+ "<Name>[" + SKUNo.trim() + L"]</Name>" +
+ "<FileName>" + id + L".jpg</FileName>" +
+ "</Item>"
+ );
+
+ xaserverarg arg = new xaserverarg;
+ arg.setNativePointer(arg.CreateInstance());
+ arg.AddArg(L"content", x.GetXml());
+ if (url::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
+ {
+ alert(x.text);
+ return -1;
+ }
+ dwc_list.SetItemString(row, L"pic", L"*");
+ dwc_list.Redraw();
+ //刷新一下界面,显示图片
+ OnShowImage(skuid, CustomerItemNo);
+ return 1;
+ }
+
+ int OnDeleteImageEx()
+ {
+ int row = dwc_list.GetNextSelectRow(1);
+ if (row < 1) row = dwc_list.GetRow();
+ if (row < 1 || row > dwc_list.GetRowCount()) return 0;
+
+ ximageview im = GetControl(L"im1");
+ int index = im.GetSelectIndex();
+ int count = im.GetImageCount();
+
+ if (count < 1) return 1;
+
+ KXMLDOMNodeList images = imageElement.selectNodes(L"image");
+ int length = images.length;
+ if (length < index) return 1;
+
+ int MB_OKCANCEL = 0x00000001;
+ int IDOK = 1;
+ if (win32::MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1;
+
+ xstring id = images.item(index).selectSingleNode(L"@guid").text;
+
+ xml x = new xml;
+ x.setNativePointer(xml::CreateInstance());
+ xaserverarg arg = new xaserverarg;
+ arg.setNativePointer(arg.CreateInstance());
+ xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>";
+ arg.AddArg(L"content", str);
+ if (url::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
+ {
+ alert(x.text);
+ return -1;
+ }
+ if (count == 1)
+ {
+ dwc_list.SetItemString(row, L"pic", L"");
+ dwc_list.Redraw();
+ }
+
+ xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID");
+ xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring");
+ xstring CustomerID = m_customer;
+ xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+ OnShowImage(skuid, CustomerItemNo);
+
+ return 1;
+ }
+
+ int OnDeleteImage() {
+ if (m_customer != L"") return OnDeleteImageEx();
+
+ int row = dw_list.GetNextSelectRow(1);
+ if (row < 1) row = dw_list.GetRow();
+ if (row < 1 || row > dw_list.GetRowCount()) return 0;
+
+ ximageview im = GetControl(L"im1");
+ int index = im.GetSelectIndex();
+ int count = im.GetImageCount();
+
+ if (count < 1) return 1;
+
+ KXMLDOMNodeList images = imageElement.selectNodes(L"image");
+ int length = images.length;
+ if (length < index) return 1;
+
+ int MB_OKCANCEL = 0x00000001;
+ int IDOK = 1;
+ if (win32::MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1;
+
+ xstring id = images.item(index).selectSingleNode(L"@guid").text;
+
+ xml x = new xml;
+ x.setNativePointer(xml::CreateInstance());
+ xaserverarg arg = new xaserverarg;
+ arg.setNativePointer(arg.CreateInstance());
+ xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>";
+ arg.AddArg(L"content", str);
+ if (url::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
+ {
+ alert(x.text);
+ return -1;
+ }
+ if (count == 1)
+ {
+ dw_list.SetItemString(row, L"pic", L"");
+ dw_list.Redraw();
+ }
+
+ KXMLDOMElement e1 = g_xdoc_product.getRowElement(L"data/Item", row);
+ xstring skuid = e1.getAttribute(L"guid");
+ OnShowImage(skuid);
+
+ return 1;
+ }
+ int OnPreviewImage()
+ {
+ int row = dw_list.GetNextSelectRow(1);
+ if (row < 1) row = dw_list.GetRow();
+ if (row < 1 || row > dw_list.GetRowCount()) return 0;
+ KXMLDOMElement e = g_xdoc_product.getRowElement(L"data/Item", row);
+ //KXMLDOMElement e = dw_list.GetRowElement(row);
+ //alert(e.xml);
+ xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+ //alert(id);
+
+ int hItem = tv_folder.GetSelectedItem();
+ KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
+ xstring categoryid = e1.selectSingleNode(L"@guid").text;
+ //alert(categoryid);
+ xaserverarg arg = new xaserverarg;
+ arg.setNativePointer(arg.CreateInstance());
+ arg.AddArg(L"SKUID", id);
+ arg.AddArg(L"CategoryID", categoryid);
+
+
+ int pr = trust(arg as int); //g_xdoc_product
+ OpenWindow(L"dev:xpage[PictureView.Product3.vx]", pr);
+
+ return 1;
+ }
+
+ int ItemMaint()
+ {
+ int hItem = tv_folder.GetSelectedItem();
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ //xstring no = e.getAttribute(L"no");
+ //if(no==L"") return 1;
+ xstring guid = e.getAttribute(L"guid");
+ if (guid == L"") return 1;
+
+ /*
+ if(no==L"NP0000FS" || no==L"UP0000FS")
+ {
+ OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]");
+ }else
+ {
+ int pr = g_xdoc_product;
+ OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",pr);
+ }
+ */
+ //KXMLDOMElement ele = g_xdoc_product.getRowElement(L"data/Item", 1);
+ //alert(ele.xml);
+
+ int pr = g_xdoc_product;
+ OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", pr);
+
+ return 1;
+ }
+
+ int ItemAdd()
+ {
+ int hItem = tv_folder.GetSelectedItem();
+ int hTopItem = LookupTopFolder(hItem);
+ xstring name = tv_folder.GetItemLabel(hTopItem);
+
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ //alert(e.xml);
+ /*xstring no = e.getAttribute(L"no");
+ if(no==L"") return 1;
+ if(no==L"NP0000FS" || no==L"UP0000FS")
+ {
+ OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]");
+ }else
+ {
+ int p = no;
+ OpenWindow(L"dev:xpage[SO.autolist.goodslib.add.vx]",p);
+ }*/
+ xstring guid = e.getAttribute(L"guid");
+ if (guid == L"") return 1;
+ xaserverarg arg = new xaserverarg;
+ arg.setNativePointer(arg.CreateInstance());
+ arg.AddArg(L"guid", e.getAttribute(L"guid"));
+ if (name == L"个人产品")
+ arg.AddArg(L"FolderID", e.getAttribute(L"guid"));
+ else
+ arg.AddArg(L"CategoryID", e.getAttribute(L"guid"));
+ xstring No = e.getAttribute(L"CategoryNo");
+ if (No == L"") No = e.getAttribute(L"no");
+ xstring Name = e.getAttribute(L"CName");
+ if (Name == L"") Name = e.getAttribute(L"cname");
+ arg.AddArg(L"No", No);
+ arg.AddArg(L"CName", Name);
+ int p = arg;
+ OpenWindow(L"dev:xpage[Quick.Input.NewProduct.vx]", p);
+
+ if (arg.GetArgString(L"data.modify") == L"1")RetrieveData();
+
+ return 1;
+ }
+
+ int OnAddFolder()
+ {
+ int hItem = tv_folder.GetSelectedItem();
+ int hTopItem = LookupTopFolder(hItem);
+ xstring name = tv_folder.GetItemLabel(hTopItem);
+ xstring selectname = tv_folder.GetItemLabel(hItem);
+
+ xaserverarg arg = ViewObject::MakeArg();
+ if (hItem != hTopItem)
+ {
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring folder = e.getAttribute(L"guid");
+ if (folder != L"")
+ {
+ arg.AddArg(L"parentCategoryID", folder);
+ OpenWindow(L"dev:xpage[UserFolderMaint.vx]", cast(arg as int));
+ /*if(arg.GetArgString(L"FolderID")!=L"")
+ {
+ int child = tv_folder.GetChildItem(hItem);
+ if(!child)
+ {
+ ExpandItem(hItem);
+ }
+ else
+ {
+ KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+ KXMLDOMElement e2 = e1.cloneNode(0);
+ e2.
+ }
+ }*/
+ }
+ }
+
+ return 1;
+ }
+
+ int OnMaintFolder()
+ {
+ int hItem = tv_folder.GetSelectedItem();
+ int hTopItem = LookupTopFolder(hItem);
+ xstring name = tv_folder.GetItemLabel(hTopItem);
+ xstring selectname = tv_folder.GetItemLabel(hItem);
+
+ xaserverarg arg = ViewObject::MakeArg();
+ if (name == L"个人库" && selectname == L"新产品" && tv_folder.GetParentItem(hItem) == hTopItem) return 1;
+ if (hItem != hTopItem)
+ {
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring folder = e.getAttribute(L"guid");
+ if (folder != L"")
+ {
+ arg.AddArg(L"CategoryID", folder);
+ OpenWindow(L"dev:xpage[UserFolderMaint.vx]", cast(arg as int));
+ if (arg.GetArgString(L"label") != L"")
+ {
+ tv_folder.SetItemLabel(hItem, arg.GetArgString(L"label"));
+ }
+ }
+ }
+
+ return 1;
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ int hCursor;
+ xstring name = L"";
+ if (comdid == L"xmRefresh")
+ {
+ return RetrieveData();
+ }
+ else if (comdid == L"xmCarGoodsDelete")
+ {
+ CarGoodsDelete();
+ return 1;
+ }
+ else if (comdid == L"xmAddFolder")
+ {
+ return OnAddFolder();
+ }
+ else if (comdid == L"xmMaintFolder")
+ {
+ return OnMaintFolder();
+ }
+ else if (comdid == L"xmClose")
+ {
+ CloseWindow();
+ return 1;
+ }
+ else if (comdid == L"xmCarGoodsMaint")
+ {
+ OpenWindow(L"dev:xpage[ShoppingCartProductMaint.vx]", trust(g_xdoc_shoppingcart as int));
+ return 1;
+ }
+ else if (comdid == L"xmCarMaint")
+ {
+ OpenWindow(L"dev:xpage[SO.autolist.Shopcar.vx]");
+ return 1;
+ }
+ else if (comdid == L"xmSaleOrder")
+ {
+ int rw = dwc_list.GetNextSelectRow(1);
+ xstring content = L"<data>";
+ while (rw > 0)
+ {
+ KXMLDOMElement xe = OnGetCarListRowElement(rw);
+ content += xe.xml;
+ rw = dwc_list.GetNextSelectRow(rw + 1);
+
+ }
+ content += L"</data>";
+ xaserverarg carg = new xaserverarg;
+ carg.setNativePointer(carg.CreateInstance());
+ carg.AddArg(L"content", content);
+ int newArg2 = carg.ptr_native_;
+ OpenWindow(L"dev:xpage[SO.Simulation.Import.vx]", newArg2);
+ return 1;
+ }
+ else if (comdid == L"xmEnquiry")
+ {
+ rw = dwc_list.GetNextSelectRow(1);
+ content = L"<data>";
+ while (rw > 0)
+ {
+ xe = OnGetCarListRowElement(rw);
+ content += xe.xml;
+ rw = dwc_list.GetNextSelectRow(rw + 1);
+ }
+ content += L"</data>";
+ carg = new xaserverarg;
+ carg.setNativePointer(carg.CreateInstance());
+ carg.AddArg(L"content", content);
+ newArg2 = carg.ptr_native_;
+ OpenWindow(L"dev:xpage[Enquiry.Import.vx]", newArg2);
+ return 1;
+ }
+ else if (comdid == L"xmPurchar")
+ {
+ rw = dwc_list.GetNextSelectRow(1);
+ content = L"<data>";
+ while (rw > 0)
+ {
+ xe = OnGetCarListRowElement(rw);
+ content += xe.xml;
+ rw = dwc_list.GetNextSelectRow(rw + 1);
+ }
+ content += L"</data>";
+ carg = new xaserverarg;
+ carg.setNativePointer(carg.CreateInstance());
+ carg.AddArg(L"content", content);
+ newArg2 = carg.ptr_native_;
+ OpenWindow(L"dev:xpage[PO.Import.vx]", newArg2);
+ return 1;
+ }
+ else if (comdid == L"xmSearch")
+ {
+ RetrieveData();
+ return 1;
+ }
+ else if (comdid == L"xmQuote")
+ {
+ rw = dwc_list.GetNextSelectRow(1);
+ content = L"<data>";
+ while (rw > 0)
+ {
+ xe = OnGetCarListRowElement(rw);
+ content += xe.xml;
+ rw = dwc_list.GetNextSelectRow(rw + 1);
+ }
+ content += L"</data>";
+ carg = new xaserverarg;
+ carg.setNativePointer(carg.CreateInstance());
+ carg.AddArg(L"content", content);
+ newArg2 = carg.ptr_native_;
+ OpenWindow(L"dev:xpage[Quote.Import.vx]", newArg2);
+ return 1;
+ }
+ else if (comdid == L"xmAdd")
+ {
+ return ItemAdd();
+ }
+ else if (comdid == L"xmDelete")
+ {
+ int row = dw_list.GetRow();
+ if (row < 1) return 1;
+ xstring skuid = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+ xml skuid_x = ViewObject::RetrieveData(L"/sale/data/ProductLibrary3/ProductNumberone", L"SKUID", skuid);
+ xstring skuidEx = skuid_x.text;
+ int skuid1 = skuidEx.toInt();
+ if (skuid1)
+ {
+ if (skuid1 > 0)
+ {
+ alert(L"订单已有产品,不允许删除!");
+ return 1;
+ }
+ }
+
+ DeleteRow(row);
+
+ return 1;
+ }
+ else if (comdid == L"xmCarAdd")
+ {
+ hCursor = xutil::SetCursorWait();
+
+ name = GetControl(L"frame:ed_goodscar").GetText();
+ if (name != L"")
+ {
+ if (ShoppingCartView::AddCar(name) == 1)
+ {
+ tv_folder.InsertChildItem(LookupTopFolder(tv_folder.GetSelectedItem()),
+ name, 0, 35);
+ }
+ }
+ xutil::RestoreCursor(hCursor);
+ return 1;
+ }
+ else if (comdid == L"xmMaint")
+ {
+ return ItemMaint();
+ }
+ else if (comdid == L"xmAddImage")
+ {
+ return OnAddImage();
+ }
+ else if (comdid == L"xmDeleteImage")
+ {
+ return OnDeleteImage();
+ }
+ else if (comdid == L"xmPreviewImage")
+ {
+ return OnPreviewImage();
+ }
+ else if (comdid == L"xmPropConfigure")
+ {
+ int r = cast(g_xdoc_product.getData(L"data/Item", L"@guid") as int);
+ OpenWindow(L"dev:xpage[Product.ItemProp.Maint.vx]", r);
+ return 1;
+ }
+ else if (comdid == L"xmRertieve")
+ {
+ /*
+ int hItem1 = tv_folder.GetSelectedItem();
+ KXMLDOMElement e2= tv_folder.GetItemData(hItem1);
+ xstring no1 = e2.getAttribute(L"no");
+ xml x2 = vcontrol::RetrieveData(L"/sale/data/SO/goods/usergoods/listex1",L"parent",no1);
+ g_xdoc_product.Retrieve(x2);
+ */
+ return 1;
+ }
+ else if (comdid == L"xmToCar")
+ {
+ name = GetControl(L"frame:cbx_goodscar").GetText();
+ if (name == L"==选择购物车==L")
+ {
+ alert(L"请选择购物车");
+ return 1;
+ }
+ int xrow = dw_list.GetNextSelectRow(1);
+ xstring goodsid = L"";
+ xstring html = L"<data>";
+ while (xrow > 0)
+ {
+ KXMLDOMElement e = g_xdoc_product.getRowElement(L"data/Item", xrow);
+ goodsid = ProductLibraryView::GetElementString(e, L"@guid");
+ html += L"<item goodid='" + goodsid + L"' id ='" + ProductLibraryView::GetGuid() + L"'/>";
+ xrow = dw_list.GetNextSelectRow(xrow + 1);
+ }
+ html += L"</data>";
+ trace(html);
+ if (ShoppingCartView::GoodsImport(name, html) == 1)
+ alert(L"添加错误!");
+ else
+ alert(L"添加成功");
+ return 1;
+ }
+ return 0;
+ }
+
+ //命令处理事件
+ int OnXCommand(ref TXCommandEvent evt, int param)
+ {
+ return OnCmdDispatch(evt.pStrID);
+ }
+
+ //查找当前树项的顶级目录
+ int LookupTopFolder(int hItem)
+ {
+ int hRoot = tv_folder.GetRootItem();
+ while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
+ return hItem;
+ }
+
+ //插入产品类项的子项
+ int MakeGoodsFolderItem(int hItem, xstring sno)
+ {
+ xml x = ProductLibraryView::GetTreeChildItems3(sno);
+ if (!x) return 0;
+
+ KXMLDOMNodeList nlist = x.SelectNodes(L"//Item");
+ int len = nlist.length;
+ for (int i = 0; i < len; i++)
+ {
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"CName");
+ xstring no = e.getAttribute(L"CategoryNo");
+ xstring label = no.trim() + L" " + name;
+
+ int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15);
+ xstring child = e.getAttribute(L"Childs");
+ if (child == L"")
+ tv_folder.SetItemChild(h, 1);
+ else if (child != L"0")
+ tv_folder.SetItemChild(h, 1);
+ }
+ return 1;
+ }
+
+ //插入新产品目录子项
+ int MakeUserGoodsFolderItem(int hItem, xstring sno)
+ {
+ xml x = ProductLibraryView::GetTreeUserChildItems3(sno);
+ if (!x) return 0;
+
+ KXMLDOMNodeList nlist = x.SelectNodes(L"//Item");
+ int len = nlist.length;
+ for (int i = 0; i < len; i++)
+ {
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"CName");
+ xstring no = e.getAttribute(L"CategoryNo");
+ xstring label = no.trim() + L" " + name;
+
+ int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15);
+ xstring child = e.getAttribute(L"Childs");
+ if (child == L"")
+ tv_folder.SetItemChild(h, 1);
+ else if (child != L"0")
+ tv_folder.SetItemChild(h, 1);
+ }
+ return 1;
+ }
+
+ //插入购物车项
+ int ExpandCatChildFolder(int hItem, KXMLDOMElement ele, int image)
+ {
+ KXMLDOMNodeList nlist = ele.SelectNodes(L"item");
+ int len = nlist.length;
+ if (len > 0) tv_folder.SetItemChild(hItem, 1);
+ for (int i = 0; i < len; i++)
+ {
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"name");
+ int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image);
+ ExpandCatChildFolder(h, e, 35);
+ }
+ return 1;
+ }
+ int MakeGoodCarFolderItem(int hItem)
+ {
+ xml x = ShoppingCartView::GetRoleList();
+ if (!x) return 0;
+ KXMLDOMNodeList nlist = x.SelectNodes(L"/data/item");
+ int len = nlist.length;
+ for (int i = 0; i < len; i++)
+ {
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"name");
+ int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35);
+ ExpandCatChildFolder(h, e, 35);
+ }
+ return 1;
+ }
+
+ int ExpandItem(int hItem)
+ {
+ int hTopItem = LookupTopFolder(hItem);
+ xstring name = tv_folder.GetItemLabel(hTopItem);
+ int child = tv_folder.GetChildItem(hItem);
+ xstring no = L"";
+ KXMLDOMElement e;
+ if (name == L"公司库" && !child)
+ {
+ no = L"";
+ if (hTopItem != hItem)
+ {
+ e = tv_folder.GetItemData(hItem);
+ no = e.getAttribute(L"categoryid");
+ }
+ else
+ {
+ e = tv_folder.GetItemData(hItem);
+ no = e.getAttribute(L"categoryid");
+ }
+ MakeGoodsFolderItem(hItem, no);
+ }
+ else if (name == L"个人库" && !child)
+ {
+ no = L"";
+ if (hTopItem != hItem)
+ {
+ e = tv_folder.GetItemData(hItem);
+ no = e.getAttribute(L"categoryid");
+ MakeUserGoodsFolderItem(hItem, no);
+ }
+ }
+ else if (name == L"购物车" && !child)
+ {
+ if (hItem == hTopItem)MakeGoodCarFolderItem(hItem);
+ }
+ return 1;
+ }
+
+ //树展开
+ int OnTreeExpanding(TEvent * evt, int p)
+ {
+ ref NMTREEVIEW nmtv = evt.pnmh;
+ int hItem = nmtv.itemNew.hItem;
+ return ExpandItem(hItem);
+ }
+
+ int ResetAgent(xstring agentAsk)
+ {
+ if (agentFor != agentAsk)
+ {
+ agentFor = agentAsk;
+ m_agentNode = 0;
+ SetAgent();
+ }
+ return 1;
+ }
+
+ int LookupCustomerFolder(int hItem)
+ {
+ while (true)
+ {
+ KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+ xstring str = e1.getAttribute(L"no");
+ if (str.find(L"Customer:") >= 0) return hItem;
+ hItem = tv_folder.GetParentItem(hItem);
+ if (hItem == 0) break;
+ }
+ return 0;
+ }
+
+ xstring LookupCustomer(int hItem)
+ {
+ hItem = LookupCustomerFolder(hItem);
+ if (hItem == 0) return "";
+ KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+ xstring str = e1.getAttribute(L"no");
+ return str.mid(L"Customer:".length(), 9999);
+ }
+
+ int RetrieveData()
+ {
+ ximageview im = GetControl(L"im1");
+ int hItem = tv_folder.GetSelectedItem();
+ int hTopItem = LookupTopFolder(hItem);
+ xstring name = tv_folder.GetItemLabel(hTopItem);
+ xstring selectname = tv_folder.GetItemLabel(hItem);
+
+ xcontrol query = GetControl(L"sl_search");
+ xstring queryString = query.GetText();
+
+ if (hItem == hTopItem)
+ {
+ dw_list.Reset();
+ dw_list.SetReadOnly(true);
+ dw_list.Redraw();
+ dwc_list.Reset();
+ dwc_list.SetReadOnly(true);
+ dwc_list.Redraw();
+
+ im.ResetEx();
+ im.Redraw();
+
+
+ htmlctrl xs1 = GetControl(L"html_detail");
+ xs1.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
+
+ if (name != L"公司库") return 1;
+ }
+ //return 1;
+
+ int hCursor = xutil::SetCursorWait();
+
+ if (name == L"购物车")
+ {
+ if (selectname != name)
+ {
+ KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+ xstring str = e1.getAttribute(L"no");
+ alert(str);
+ if (str.find(L"Customer:") == 0 || str.find(L"SO:") == 0)
+ {
+ m_customer = LookupCustomer(hItem);
+ if (str.find(L"Customer:") == 0)
+ dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodscustomerlist");
+ else
+ dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist");
+ dwc_list.Reset();
+ dwc_list.SetReadOnly(true);
+ g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
+ }
+ else if (e1.getAttribute(L"categoryid") != L"")
+ {
+ xstring categoryid = e1.getAttribute(L"categoryid");
+ dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid).GetXmlDoc());
+ dwc_list.SetReadOnly(true);
+ dwc_list.Reset();
+ g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, L""));
+ dwc_list.Redraw();
+ }
+ else
+ {
+ dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist");
+ dwc_list.SetReadOnly(true);
+ dwc_list.Reset();
+ g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString));
+ }
+ dwc_list.PostRetrieve();
+ dwc_list.Redraw();
+
+ if (dwc_list.GetRowCount() >= 1)
+ {
+ htmlctrl xs = GetControl(L"html_detail");
+ xs.SetContent(makeGoodscarHtml(1));
+
+ if (m_customer != L"")
+ {
+ xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", 1, L"SKUID");
+ xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", 1, L"CustomerItemNo");
+ OnShowImage(skuid, customerItemNo);
+ }
+ }
+ else
+ {
+
+ im.ResetEx();
+ im.Redraw();
+
+ xs = GetControl(L"html_detail");
+ xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
+ }
+ xs.Redraw();
+ }
+ }
+ else
+ {
+
+ if (name == L"个人库" || name == L"公司库")
+ {
+ xstring no = L"N000005";
+ if (name == L"个人库") no = L"U000005";
+
+ if (hItem != hTopItem)
+ {
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ no = e.getAttribute(L"guid");
+ }
+
+ /* dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no).GetXmlDoc());
+ dw_list = GetControl(L"dw_list");
+ dw_list.Reset();
+ dw_list.SetReadOnly(true);
+ */
+
+ if (name == L"个人库")
+ g_xdoc_product.Retrieve(ProductLibraryView::GetMaintRoleList3(no));
+ else
+ {
+ if (queryString != L"")
+ {
+
+ if (no == L"N000005")
+ g_xdoc_product.Retrieve(ProductLibraryView::GetMaintList3(L"", queryString, L""));
+ else
+ g_xdoc_product.Retrieve(ProductLibraryView::GetMaintList3(no, queryString, L""));
+ }
+ else
+ g_xdoc_product.Retrieve(ProductLibraryView::GetMaintList3(no));
+ }
+ dw_list.PostRetrieve();
+ dw_list.Redraw();
+
+ if (dw_list.GetRowCount() > 0)
+ {
+ xs = GetControl(L"html_detail");
+ xs.SetContent(makeHtml(1));
+ xstring id = g_xdoc_product.getData(0, L"data/Item", 1, L"@guid");
+ OnShowImage(id);
+ }
+ else
+ {
+ im.ResetEx();
+ im.Redraw();
+
+ xs = GetControl(L"html_detail");
+ xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
+ }
+ xs.Redraw();
+ }
+ }
+ xutil::RestoreCursor(hCursor);
+
+ return 1;
+ }
+
+ int OnTreeSelChanged(TEvent * evt, int p)
+ {
+ ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW);
+ int hItem = nmtv.itemNew.hItem;
+ int hTopItem = LookupTopFolder(hItem);
+ xstring name = tv_folder.GetItemLabel(hTopItem);
+ xstring selectname = tv_folder.GetItemLabel(hItem);
+ ximageview im = GetControl(L"im1");
+ m_customer = L"";
+ //alert(name);
+ if (name == L"购物车")
+ {
+ if (agentFor != L"goodscar")SwitchLayer(L"goodscarsheet", L"sheetframe");
+ ResetAgent(L"goodscar");
+ }
+ else
+ {
+ if (agentFor != L"goodslib")SwitchLayer(L"goodslibsheet", L"sheetframe");
+ if (name == L"个人库")
+ ResetAgent(L"userlib");
+ else
+ ResetAgent(L"goodslib");
+ }
+ //RetrieveData();
+ win32::PostMessage(GetHWND(), 0x401, L"xmRefresh", 0);
+
+ return 1;
+ }
+
+ int ExpandChildFolder(int hItem, KXMLDOMElement pElement)
+ {
+ KXMLDOMNodeList nlist = pElement.SelectNodes(L"Item");
+ int len = nlist.length;
+ for (int i = 0; i < len; i++)
+ {
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"cname");
+ xstring sImage = e.getAttribute(L"image");
+ int image = 15;
+ //if(sImage) image = sImage.toInt();
+ int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image);
+ tv_folder.SetItemChild(h, 1);
+ ExpandChildFolder(h, e);
+ }
+ return 1;
+ }
+
+ int InitialFolder()
+ {
+ KXMLDOMElement xframeElement = GetElement();
+ KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
+ ExpandChildFolder(0, e);
+ return 1;
+ }
+
+ int OnViewZoomChange(ref TCommandEvent evt, int lParam)
+ {
+ ximageview im = GetControl(L"im1");
+ xcombobox xc = GetControl(L"precent");
+ xstring text = xcombobox::GetLBText(xc.GetId());
+ int p = text.toInt();
+ if (p == 0) p = 100;
+ im.Preview(p);
+ return 1;
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", OnSetFocus);
+ AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", OnRowChanged);
+ AttachEvent(L"dwc_list", L"DWV_ROWFOCUSCHANGED", OnGoodsCarRowChanged);
+ AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", OnTreeExpanding);
+ AttachEvent(L"tv_folder", L"TVN_SELCHANGED", OnTreeSelChanged);
+ AttachEvent(L"WM_COMMAND", OnCkbCLick); //checkbox打钩事件
+ AttachEvent(L"WM_COMMAND", OnCkbCLick2); //checkbox打钩事件
+
+ AttachEvent(L"im1", L"IMG_LDBCLICK", OnImgDBClicked);
+ AttachEvent(L"precent", L"CBN_SELCHANGE", OnViewZoomChange);
+ }
+
+ int onload()
+ {
+ agentFor = L"goodslib";
+ m_customer = 0;
+ imageElement = 0;
+
+ OnAttachEvent();
+
+ tv_folder = GetControl(L"tv_folder");
+ dw_list = GetControl(L"dw_list");
+ dwc_list = GetControl(L"dwc_list");
+
+ InitialFolder();
+
+ g_xdoc_product = new xdataset;
+ g_xdoc_product.Init();
+ xbind bindproduct = new xbind;
+ bindproduct.bindEx(dw_list, g_xdoc_product, L"");
+
+ g_xdoc_shoppingcart = new xdataset;
+ g_xdoc_shoppingcart.Init();
+
+ xbind bindcart = new xbind;
+ bindcart.bindEx(dwc_list, g_xdoc_shoppingcart, L"");
+
+ dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(L"").GetXmlDoc());
+ dw_list = GetControl(L"dw_list");
+ dw_list.SetReadOnly(true);
+
+ dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist");
+ dwc_list.SetReadOnly(true);
+
+ if (dw_list.GetRowCount())
+ {
+ htmlctrl xs = GetControl(L"html_detail");
+ xs.SetContent(makeHtml(1));
+ }
+
+ tv_folder.ExpandItem(tv_folder.GetRootItem());
+ tv_folder.ItemFocus(tv_folder.GetRootItem());
+ return 1;
+ }
+
+ int onloaded()
+ {
+ SetAgent();
+
+ return 1;
+ }
+
+ int OnImgDBClicked(TEvent * evt, int pr)
+ {
+ ref IMGNNMHDR nmtv = evt.pnmh;
+ xstring src = nmtv.path;
+ /*if(src.length() > 60)
+ src = src.right(44);
+ else
+ src=src.mid(src.find(L"Thumbs", 0)+6, 50);
+ */
+ xaserverarg arg = new xaserverarg;
+ arg.setNativePointer(arg.CreateInstance());
+ //arg.AddArg(L"src",L"/business/products/chanpin"+src);
+ arg.AddArg(L"src", src);
+
+ //win::OpenWindow(L"dev:xpage[BigPicture.vx]",arg);
+
+ int h = openUrl(L"/sale/view/ProductLibrary/xpage/bigpictureview", arg);
+ return 1;
+ /*
+ xwin x = new xwin;
+ x.setNativePointer(h);
+ m_winHwnd = x.GetHWND();
+
+ xstring sh = doc.GetXml();
+ int p = cast(sh as int);
+ win32::SendMessage(m_winHwnd, 0x401, p, 0);
+ */
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/project/viewobject/shoppingcart.view.hpp b/jrj/project/viewobject/shoppingcart.view.hpp
index 5045a1b..3f9dc97 100644
--- a/jrj/project/viewobject/shoppingcart.view.hpp
+++ b/jrj/project/viewobject/shoppingcart.view.hpp
@@ -7,7 +7,7 @@
#include <wobject/xurl.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xdwtable.hpp>
-#include <view.base.hpp>
+#include "view.base.hpp"
class ShoppingCartView: public ViewObject
{
diff --git a/jrj/xframe/wobject/xaserver.hpp b/jrj/xframe/wobject/xaserver.hpp
index a6f6cc0..d309054 100644
--- a/jrj/xframe/wobject/xaserver.hpp
+++ b/jrj/xframe/wobject/xaserver.hpp
@@ -165,9 +165,9 @@
//int SetTrans(ITrans *);
//ITrans * GetTrans();
- static int UploadEx(LPTSTR pUri,LPTSTR pName,HWND m_hWnd,LPTSTR pSource=NULL,BOOL bCompress=false)
+ static int UploadEx(LPCTSTR pUri,LPCTSTR pName,HWND m_hWnd,LPCTSTR pSource=NULL,BOOL bCompress=false)
{
- return kxaserver::UploadEx(pUri,pName,m_hWnd,pSource,bCompress);
+ return kxaserver::UploadEx((LPTSTR)pUri, (LPTSTR)pName,m_hWnd, (LPTSTR)pSource,bCompress);
}
static int Upload(LPTSTR pUri,LPTSTR pName,HWND m_hWnd,LPTSTR pSource=NULL,BOOL bCompress=false)
@@ -175,34 +175,34 @@
return kxaserver::Upload(pUri,pName,m_hWnd,pSource,bCompress);
}
- static int Upload(LPTSTR pUri,LPTSTR pName,LPTSTR pPath,HWND m_hWnd,LPTSTR pSource=NULL,BOOL bCompress=false)
+ static int Upload(LPCTSTR pUri,LPCTSTR pName,LPCTSTR pPath,HWND m_hWnd,LPCTSTR pSource=NULL,BOOL bCompress=false)
{
- return kxaserver::Upload(pUri,pName,pPath,m_hWnd,pSource,bCompress);
+ return kxaserver::Upload((LPTSTR)pUri, (LPTSTR)pName, (LPTSTR)pPath,m_hWnd, (LPTSTR)pSource,bCompress);
}
- static int FileCopy(LPTSTR pUri,LPTSTR pName,LPTSTR pUri1,LPTSTR pName1)
+ static int FileCopy(LPCTSTR pUri,LPCTSTR pName,LPCTSTR pUri1,LPCTSTR pName1)
{
- return kxaserver::FileCopy(pUri,pName,pUri1,pName1);
+ return kxaserver::FileCopy((LPTSTR)pUri, (LPTSTR)pName, (LPTSTR)pUri1, (LPTSTR)pName1);
}
- static LPTSTR UploadFile(LPTSTR pUri,LPTSTR pName,HWND m_hWnd,LPTSTR pSource,BOOL bCompress)
+ static LPCTSTR UploadFile(LPCTSTR pUri,LPCTSTR pName,HWND m_hWnd,LPCTSTR pSource,BOOL bCompress)
{
- return kxaserver::UploadFile(pUri,pName,m_hWnd,pSource,bCompress);
+ return kxaserver::UploadFile((LPTSTR)pUri,(LPTSTR)pName,m_hWnd,(LPTSTR)pSource,bCompress);
}
static int __DeleteFile(LPTSTR pName)
{
return kxaserver::__DeleteFile(pName);
}
- static int __CreateDirectory(LPTSTR pName)
+ static int __CreateDirectory(LPCTSTR pName)
{
- return kxaserver::__CreateDirectory(pName);
+ return kxaserver::__CreateDirectory((LPTSTR)pName);
}
static int DownLoadFile(LPCTSTR pStrServer,LPCTSTR pUrl,LPCTSTR pExt,LPTSTR pName=NULL)
{
return kxaserver::DownLoadFile(pStrServer,pUrl,pExt,pName);
}
- static int UploadData(LPTSTR pUri,LPTSTR pName,LPTSTR pData)
+ static int UploadData(LPCTSTR pUri,LPCTSTR pName,LPCTSTR pData)
{
- return kxaserver::UploadData(pUri,pName,pData);
+ return kxaserver::UploadData((LPTSTR)pUri, (LPTSTR)pName, (LPTSTR)pData);
}
};
\ No newline at end of file
diff --git a/jrj/xframe/xcontrol/xcheckbox.hpp b/jrj/xframe/xcontrol/xcheckbox.hpp
new file mode 100644
index 0000000..10059a8
--- /dev/null
+++ b/jrj/xframe/xcontrol/xcheckbox.hpp
@@ -0,0 +1,177 @@
+#pragma once
+
+#include "wobject/xcontrol.hpp"
+#include "win32/win.hpp"
+
+typedef struct _TREEITEM{} *HTREEITEM;
+
+#define TVI_ROOT ((HTREEITEM)(ULONG_PTR)-0x10000)
+#define TVI_FIRST ((HTREEITEM)(ULONG_PTR)-0x0FFFF)
+#define TVI_LAST ((HTREEITEM)(ULONG_PTR)-0x0FFFE)
+#define TVI_SORT ((HTREEITEM)(ULONG_PTR)-0x0FFFD)
+
+#define TVIF_TEXT 0x0001
+#define TVIF_IMAGE 0x0002
+#define TVIF_PARAM 0x0004
+#define TVIF_STATE 0x0008
+#define TVIF_HANDLE 0x0010
+#define TVIF_SELECTEDIMAGE 0x0020
+#define TVIF_CHILDREN 0x0040
+#define TVIF_INTEGRAL 0x0080
+
+#define TVIF_STATEEX 0x0100
+#define TVIF_EXPANDEDIMAGE 0x0200
+
+#define TVIS_SELECTED 0x0002
+#define TVIS_CUT 0x0004
+#define TVIS_DROPHILITED 0x0008
+#define TVIS_BOLD 0x0010
+#define TVIS_EXPANDED 0x0020
+#define TVIS_EXPANDEDONCE 0x0040
+#define TVIS_EXPANDPARTIAL 0x0080
+
+#define TVIS_OVERLAYMASK 0x0F00
+#define TVIS_STATEIMAGEMASK 0xF000
+#define TVIS_USERMASK 0xF000
+
+#define TVGN_ROOT 0x0000
+#define TVGN_NEXT 0x0001
+#define TVGN_PREVIOUS 0x0002
+#define TVGN_PARENT 0x0003
+#define TVGN_CHILD 0x0004
+#define TVGN_FIRSTVISIBLE 0x0005
+#define TVGN_NEXTVISIBLE 0x0006
+#define TVGN_PREVIOUSVISIBLE 0x0007
+#define TVGN_DROPHILITE 0x0008
+#define TVGN_CARET 0x0009
+#define TVGN_LASTVISIBLE 0x000A
+#define TVGN_NEXTSELECTED 0x000B
+
+ #define TV_FIRST 0x1100
+
+struct SCROLLINFO
+{
+ int cbSize;
+ int fMask;
+ int nMin;
+ int nMax;
+ int nPage;
+ int nPos;
+ int nTrackPos;
+};
+
+struct tvitem
+{
+ int mask;
+ HTREEITEM hItem;
+ int state;
+ int stateMask;
+ string pszText;
+ int cchTextMax;
+ int iImage;
+ int iSelectedImage;
+ int cChildren;
+ LPARAM lParam;
+};
+
+struct tvinsertstruct
+{
+ HTREEITEM hParent;
+ HTREEITEM hInsertAfter;
+ tvitem item;
+};
+
+
+struct NMTREEVIEW : public NMHDR
+{
+ int action;
+ tvitem itemOld;
+ tvitem itemNew;
+ xpoint ptDrag;
+};
+
+
+struct TVNNMHDR : public NMHDR
+{
+ HTREEITEM FromItem;
+ HTREEITEM ToItem;
+ xpoint pt;
+ string PopupMenu;
+};
+
+struct NMTVDISPINFO : public NMHDR
+{
+ tvitem item;
+};
+
+struct TVHITTESTINFO {
+ xpoint pt;
+ int flags;
+ HTREEITEM hItem;
+};
+
+class xcheckbox: public xcontrol
+{
+public:
+ xcheckbox() :xcontrol(nullptr) {}
+ xcheckbox(void* implptr) :xcontrol(implptr) {}
+
+ static int SetCheck(int wid)
+ {
+ int BM_SETCHECK = 0x00F1;
+ int BST_CHECKED = 0x1;
+ SendMessage(wid, BM_SETCHECK, BST_CHECKED, 0);
+ return 1;
+ }
+ static int SetUnCheck(int wid)
+ {
+ int BM_SETCHECK = 0x00F1;
+ int BST_UNCHECKED = 0x0;
+ win32::SendMessage(wid, BM_SETCHECK, BST_UNCHECKED, 0);
+ return 1;
+ }
+ static int SetText(int wid, string txt)
+ {
+ int WM_SETTEXT = 0x000C;
+ win32::SendMessage(wid, WM_SETTEXT, 0, txt);
+ return 1;
+ }
+ static int GetCheck(int wid)
+ {
+ int BM_GETCHECK = 0x00F0;
+ int BM_GETSTATE = 0x00F2;
+ int r = win32::SendMessage(wid, BM_GETSTATE, 0, 0);
+ if (r == 8 || r == 0 || r == 520) return -1;
+ else return 1;
+ }
+
+ int SetCheck()
+ {
+ int BM_SETCHECK = 0x00F1;
+ int BST_CHECKED = 0x1;
+ SendMessage(GetHWND(), BM_SETCHECK, BST_CHECKED, 0);
+ return 1;
+ }
+ int SetUnCheck()
+ {
+ int BM_SETCHECK = 0x00F1;
+ int BST_UNCHECKED = 0x0;
+ SendMessage(GetHWND(), BM_SETCHECK, BST_UNCHECKED, 0);
+ return 1;
+ }
+
+ int SetText(, string txt)
+ {
+ int WM_SETTEXT = 0x000C;
+ SendMessage(GetHWND(), WM_SETTEXT, 0, txt);
+ return 1;
+ }
+ int GetCheck()
+ {
+ int BM_GETCHECK = 0x00F0;
+ int BM_GETSTATE = 0x00F2;
+ int r = SendMessage(GetHWND(), BM_GETSTATE, 0, 0);
+ if (r == 8 || r == 0 || r == 520) return -1;
+ else return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/xframe/xcontrol/ximageview.hpp b/jrj/xframe/xcontrol/ximageview.hpp
index df45f8e..7fa1841 100644
--- a/jrj/xframe/xcontrol/ximageview.hpp
+++ b/jrj/xframe/xcontrol/ximageview.hpp
@@ -15,13 +15,13 @@
return (kimageview*)getNativePointer();
}
public:
- int AddImages(LPCTSTR pUrl, LPTSTR pText=NULL)
+ int AddImages(LPCTSTR pUrl, LPCTSTR pText=NULL)
{
- return GetKImageView()->AddImages(pUrl, pText);
+ return GetKImageView()->AddImages(pUrl, (LPTSTR)pText);
}
- int InsertImages(LPCTSTR pUrl, LPTSTR pText, int nIndex)
+ int InsertImages(LPCTSTR pUrl, LPCTSTR pText, int nIndex)
{
- return GetKImageView()->InsertImages(pUrl, pText,nIndex);
+ return GetKImageView()->InsertImages(pUrl,(LPTSTR)pText,nIndex);
}
int RemoveImage(int nIndex)
{
--
Gitblit v1.9.3