þÿ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include "vbusiness/vframe/frame.vframe.vbusiness.hpp" using xml = KXMLDOMDocument; /************************************** TSC bSSpg:**********************************************/ /* int openport(char* a) native from "tsclib.dll" alias "openport"; int closeport() from "tsclib.dll" alias "closeport"; int setup(char* a, char* b, char* c, char* d, char* e, char* f, char* g) from "tsclib.dll" alias "setup"; int clearbuffer() from "tsclib.dll" alias "clearbuffer"; int barcode(char* ss1, char* ss2, char* ss3, char* ss4, char* ss5, char* ss6, char* ss7, char* ss8, char* ss9) from "tsclib.dll" alias "barcode"; int printlabel(char* ss1, char* ss2) from "tsclib.dll" alias "printlabel"; int windowsfont(int a, int b, int c, int d, int e, int f, char* g, char* h)from "tsclib.dll" alias "windowsfont"; int printerfont(char* a, char* b, char* c, char* d, char* e, char* f, char* g) from "tsclib.dll" alias "printerfont"; int sendcommand(char* command) from "TSCLIB.DLL" alias "sendcommand"; */ extern "C" { int WINAPI WideCharToMultiByte( UINT CodePage, //c[šbgˆLlcbv„Nãx˜u DWORD dwFlags, //QA‹¸O`ÛˆL˜Yv„c§R6ÿ [ƒO_qTÍOu(N†‹û—ó{&S÷ÿkÔY‚‘Í—óÿ v„[W{& LPCWSTR lpWideCharStr, //c[š‰lcbN:[½[W‚‚[W{&N2v„Q²S: int cchWideChar, //c[šu1SÂeplpWideCharStrcTv„Q²S:v„[W{&N*ep char* lpMultiByteStr, //cTc¥e6ˆ«lcb[W{&N2v„Q²S: int cchMultiByte, //c[šu1SÂeplpMultiByteStrcTv„Q²S:gY'P< const char* lpDefaultChar, //GR0NN*N €ýlcbv„[½[W{&ÿ QýepO¿OOu(pDefaultCharSÂepcTv„[W{& bool * pfUsedDefaultChar //ó\g NN*[W{&N €ýlcbN:QvY[W‚‚_b_ÿ Qýep\1ObŠÙN*Sؑϋ¾N:TRUE ); } extern int about(); extern int openportW(wchar_t*); extern int closeport(); extern int sendcommandW(wchar_t*); extern int printerfontW(wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*); extern int windowsfontW(wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*); extern int printlabelW(wchar_t*, wchar_t*); extern int barcodeW(wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*); extern int clearbuffer(); extern int setup(char*, char*, char*, char*, char*, char*, char*); class __declspec(dllexport) OutstoreSample3Win : public xframe { public: OutstoreSample3Win(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static OutstoreSample3Win* CreateInstance(void* implPtr, void* hWnd) { return new OutstoreSample3Win(implPtr, (HWND)hWnd); } public: xdwgrid dw_list; xdwtable dw_arg; xnode m_agentNode; //Agent Condition xstring Printer; /* static stdcall int MessageBoxA(int hWnd, char* title, char* caption, int button) native from "user32.dll" alias "MessageBoxA"; static stdcall int Set_Darkness(int darkness)native from "WINPPLA.DLL" alias "Set_Darkness"; static stdcall int CreatePrn(int selection, char* FileName)native from "WINPPLA.DLL" alias "CreatePrn"; static stdcall int Print_Out(int width1, int height1, int copies, int amount)native from "WINPPLA.DLL" alias "Print_Out"; static stdcall int Prn_Text(int x1, int y1, int ori, int font, int typee, int hor_factor, int ver_factor, char mode, int numeric, char* data)native from "WINPPLA.DLL" alias "Prn_Text"; static stdcall int Prn_Barcode(int x1, int y1, int ori, char typee, int narrow, int width1, int height1, char mode, int numeric, char* data)native from "WINPPLA.DLL" alias "Prn_Barcode"; static stdcall void ClosePrn() native from "WINPPLA.DLL" alias "ClosePrn"; static stdcall void Feed_Label() native from "WINPPLA.DLL" alias "Feed_Label"; static stdcall int Z_Set_Darkness(int darkness)native from "WINPPLZ.DLL" alias "Z_Set_Darkness"; static stdcall int Z_CreatePrn(int selection, char* FileName)native from "WINPPLZ.DLL" alias "Z_CreatePrn"; static stdcall int Z_Print_Out(int copies, int amount)native from "WINPPLZ.DLL" alias "Z_Print_Out"; static stdcall void Z_ClosePrn() native from "WINPPLZ.DLL" alias "Z_ClosePrn"; static stdcall int Z_Prn_Text(int x, int y, int ori, char font, int height, int width, int increase, char* data)native from "WINPPLZ.DLL" alias "Z_Prn_Text"; static stdcall int Z_Prn_Barcode(int x, int y, int ori, int narrow, int width, int height, char typee, int increase, char* data, char p1, char p2, char p3, char p4, char p5)native from "WINPPLZ.DLL" alias "Z_Prn_Barcode"; static stdcall int Z_Set_Unit(char m)native from "WINPPLZ.DLL" alias "Z_Set_Unit"; static stdcall int Z_Clear_Memory()native from "WINPPLZ.DLL" alias "Z_Clear_Memory"; */ /************************************** TSC bSSpg:**********************************************/ /* int openport(char* a) native from "tsclib.dll" alias "openport"; int closeport() from "tsclib.dll" alias "closeport"; int setup(char* a, char* b, char* c, char* d, char* e, char* f, char* g) from "tsclib.dll" alias "setup"; int clearbuffer() from "tsclib.dll" alias "clearbuffer"; int barcode(char* ss1, char* ss2, char* ss3, char* ss4, char* ss5, char* ss6, char* ss7, char* ss8, char* ss9) from "tsclib.dll" alias "barcode"; int printlabel(char* ss1, char* ss2) from "tsclib.dll" alias "printlabel"; int windowsfont(int a, int b, int c, int d, int e, int f, char* g, char* h)from "tsclib.dll" alias "windowsfont"; int printerfont(char* a, char* b, char* c, char* d, char* e, char* f, char* g) from "tsclib.dll" alias "printerfont"; int sendcommand(char* command) from "TSCLIB.DLL" alias "sendcommand"; */ char* s2a(string str) { char* astr; int len = WideCharToMultiByte(0, 0, str, -1, NULL, 0, NULL, 0); astr = new char[len]; WideCharToMultiByte(0, 0, str, -1, astr, len, NULL, 0); return astr; } 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"[1]/*"); if (agent) { xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //q&p¹oÀm;YtQýep int OnSetFocus(TEvent* evt, LPARAM param) { //‘Ín]åQwga SetAgent(); return 1; } int Adjust() { xstring DeveloperID; xstring DeveloperName; xstring str; for (int i = 1; i <= dw_list.GetRowCount(); i++) { str = dw_list.GetItemString(i, L"DeveloperID"); if (dw_list.GetItemString(i, L"BarCode") != L"") { if (str == L"") { if (i > 1) { if (dw_list.GetItemString(i - 1, L"DeveloperID") != L"") { dw_list.SetItemDisplayString(i, L"DeveloperID", dw_list.GetItemDisplayString(i - 1, L"DeveloperID")); dw_list.ItemChangeTo(i, L"DeveloperID", dw_list.GetItemString(i - 1, L"DeveloperID")); } } } } str = dw_list.GetItemString(i, L"OutstoreReason"); if (dw_list.GetItemString(i, L"BarCode") != L"") { if (str == L"") { if (i > 1) { if (dw_list.GetItemString(i - 1, L"OutstoreReason") != L"") { dw_list.SetItemDisplayString(i, L"OutstoreReason", dw_list.GetItemDisplayString(i - 1, L"OutstoreReason")); dw_list.ItemChangeTo(i, L"OutstoreReason", dw_list.GetItemString(i - 1, L"OutstoreReason")); } } } } } return 1; } int OnSave() { Adjust(); //if(dw_list.GetRowCount() < 1) return 1; if (dw_list.GetItemString(dw_list.GetRowCount(), L"BarCode") == L"") dw_list.DeleteRow(dw_list.GetRowCount()); xml x; dw_list.DwUpdateAllToEx(x); //xsedit xc = GetControl(L"frame:vdata"); //if(xc)xc.LoadContent(xdoc.xml,L".xml"); //trace(xdoc.xml); xaserverarg arg ; arg.AddArg(L"content", x.xml()); //if( if (xurl::get(L"/sale/data/SampleOut/maint/update/base", arg.GetString(), x) != 1) { xstring error = x.text(); alert(L"err:" + error); return 1; } else { string str = x.documentElement().getAttribute(L"text"); if (str == L"false") { alert(L"OÝ[XY1%!"); return 1; } dw_list.ResetUpdateStatus(); alert(L"OÝ[XbRŸÿ"); } return 1; } int getBalanceEx(string barcode1) { int ttl = 0; xml x = ViewObject::RetrieveData(L"/sale/data/Sample/entity/balance/barcode", L"barcode", barcode1); if (x) { xstring val; val = x.documentElement().getAttribute(L"value"); ttl = val.toInt(); } return ttl; } int getBalance(string goodsno) { int ttl = 0; xml x = ViewObject::RetrieveData(L"/sale/data/Sample/entity/balance", L"GoodsNo", goodsno); if (x) { xstring val; val = x.documentElement().getAttribute(L"value"); ttl = val.toInt(); } return ttl; } int getSumBalance(int row, string goodsno) { int ttl = 0; for (int crow = 1; crow < row; crow++) { KXMLDOMElement ele = dw_list.GetRowElement(crow); string str = ele.getAttribute(L"update.new"); if (str == L"1") { if (dw_list.GetItemString(crow, L"GoodsNo") == goodsno) ttl += dw_list.GetItemInt(crow, L"Quantity"); } } return ttl; } int getSumBalanceEx(int row, string barcode1) { int ttl = 0; for (int crow = 1; crow < row; crow++) { KXMLDOMElement ele = dw_list.GetRowElement(crow); string str = ele.getAttribute(L"update.new"); if (str == L"1") { if (dw_list.GetItemString(crow, L"BarCode") == barcode1) ttl += dw_list.GetItemInt(crow, L"Quantity"); } } return ttl; } //Rg int OnAnalysis() { HCURSOR hCursor = xutil::SetCursorWait(); string str = dw_list.DataAnalysis(L""); xaserverarg arg; arg.AddArg(L"html", str); arg.SetParam(L"obj", dw_list); OpenWindow(L"dev:xpage[data.vanalysis.vx]", arg); xutil::RestoreCursor(hCursor); return 1; } int OnAutoRow() { dw_list.InsertRow(0); rowinitial(dw_list.GetRowCount()); dw_list.SetRow(dw_list.GetRowCount()); dw_list.ShowRowTo(dw_list.GetRowCount()); //dw_list.SetColumn(colname); dw_list.ShowEditor(); return 1; } //T}NäSÑ^Qýep int OnCmdDispatch(xstring comdid) { if (comdid == L"xmAddRow") { dw_list.InsertRow(0); rowinitial(dw_list.GetRowCount()); dw_list.SetRow(dw_list.GetRowCount()); dw_list.ShowRowTo(dw_list.GetRowCount()); return 1; } else if (comdid == L"xmDeleteRow") { dw_list.DeleteRow(0); return 1; } else if (comdid == L"xmPrint") { OnPrint(); return 1; } else if (comdid == L"xmSave") { OnSave(); return 1; } else if (comdid == L"xmRetrieve") { OnRetrieve(); return 1; } else if (comdid == L"xmAnalysis") { OnAnalysis(); } else if (comdid == L"xmAutoRow") { OnAutoRow(); } return 0; } int OnClicked(TEvent* evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; char ch; int row = hdr.row; string col = hdr.colname; //string data = hdr.data; if (row < 1) return 1; if (row > dw_list.GetRowCount()) return 1; if (GetKeyState(0x11/*VK_CONTROL*/) & 0x8000) { dw_list.SetReadOnly(false); return 1; } return 1; } int OnItemChanged(TEvent* evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring value = hdr.data; int row = hdr.row; xstring dwname = L"dw_list"; if (colname == L"BarCode") { if (value.find(L"0") == 0) { value = value.mid(1, 32); dw_list.SetItemString(row, L"BarCode", value); } } /* if(colname != L"OutstoreReason" && row > 1 ) { string OutstoreReason = dw_list.GetItemString(row,L"OutstoreReason"); if(OutstoreReason ==L"") { OutstoreReason= dw_list.GetItemString(row - 1,L"OutstoreReason"); if(OutstoreReason !=L"") { dw_list.SetItemString(row,L"OutstoreReason",OutstoreReason); dw_list.SetItemDisplayString(row,L"OutstoreReason", dw_list.GetItemDisplayString(row - 1,L"OutstoreReason")); dw_list.ItemChangeTo(row,L"OutstoreReason",OutstoreReason); } } } */ /* if(colname != L"DeveloperID" && row > 1) { string developer = dw_list.GetItemString(row,L"DeveloperID"); if(developer ==L"") { developer = dw_list.GetItemString(row - 1,L"DeveloperID"); if(developer !=L"") { dw_list.SetItemString(row,L"DeveloperID",developer); dw_list.SetItemDisplayString(row,L"DeveloperID", dw_list.GetItemDisplayString(row - 1,L"DeveloperID")); dw_list.ItemChangeTo(row,L"DeveloperID",developer); } } } */ if (value != L"") { KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']"); if (nlist.length() > 0) ViewObject::TransData(nlist, dw_list, hdr.row, colname, value); } if ((colname == L"BarCode" || colname == L"GoodsNo" || colname == L"Quantity") && value != L"") { xstring goodsno = dw_list.GetItemString(row, L"GoodsNo"); xstring qunatity = dw_list.GetItemString(row, L"Quantity"); xstring barcode1 = dw_list.GetItemString(row, L"BarCode"); int balance = getBalanceEx(barcode1) - getSumBalanceEx(row, barcode1) - qunatity.toInt(); dw_list.SetItemString(row, L"QtyStocked", xstring(balance)); dw_list.Redraw(); if (row == dw_list.GetRowCount()) { PostMessage(GetHWND(), 0x401, (WPARAM)L"xmAutoRow", 0); } } /* if(colname == L"BarCode" && value != L"") { if(row == dw_list.GetRowCount()) { dw_list.InsertRow(0); rowinitial(dw_list.GetRowCount()); dw_list.SetRow(dw_list.GetRowCount()); } }*/ return 1; } #if 0 int OnPrint_ppla(int sRow, int eRow, string PrintNumber, int prn = 1) { int i = 0; if (sRow > eRow) return 1; if (sRow < 0) sRow = 1; if (eRow > dw_list.GetRowCount()) eRow = dw_list.GetRowCount(); int count = 0; if (PrintNumber != L"*") count = PrintNumber.toInt(); char* agoodsno; char* abarcode; char* emptystr = s2a(L""); for (i = sRow; i <= eRow; i++) { int cx = count; if (cx == 0) cx = dw_list.GetItemInt(i, L"Quantity"); string goodsno = dw_list.GetItemString(i, L"GoodsNo"); string barcode1 = dw_list.GetItemString(i, L"BarCode"); agoodsno = s2a(goodsno); abarcode = s2a(barcode1); //debugbreak(); CreatePrn(prn, emptystr); Set_Darkness(12); Prn_Barcode(13, 20, 1, 'd', 0, 0, 30, 'n', 1, abarcode); Prn_Text(13, 50, 1, 9, 2, 1, 1, 'n', 2, agoodsno); //Prn_Text(90, 50, 1, 9, 1, 1, 1, 'n', 2, as_qty) Prn_Text(30, 7, 1, 9, 2, 1, 1, 'n', 2, abarcode); //Prn_Text(150, 45, 1, 9, 0, 1, 1, 'n', 2,emptystr); Print_Out(1, 1, cx, 1); Feed_Label(); ClosePrn(); delete agoodsno; delete abarcode; } return 1; } int OnPrint_pplz(int sRow, int eRow, string PrintNumber, int prn = 1) { if (sRow > eRow) return 1; if (sRow < 0) sRow = 1; if (eRow > dw_list.GetRowCount()) eRow = dw_list.GetRowCount(); int count = 0; if (PrintNumber != L"*") count = PrintNumber.toInt(); char* agoodsno; char* abarcode; char* emptystr = s2a(L""); int li_rate = 8; for (int i = sRow; i <= eRow; i++) { int cx = count; if (cx == 0) cx = dw_list.GetItemInt(i, L"Quantity"); string goodsno = dw_list.GetItemString(i, L"GoodsNo"); string barcode1 = dw_list.GetItemString(i, L"BarCode"); agoodsno = s2a(goodsno); abarcode = s2a(barcode1); Z_CreatePrn(prn, emptystr); Z_Set_Darkness(12); Z_Set_Unit('M'); //kë|s Z_Prn_Barcode(3, 4, 1, 2, 2, 7, '2', 0, abarcode, 'n', 'n', 'n', 'y', 'y'); Z_Set_Unit('D'); //PÏ} Z_Prn_Text(3 * li_rate, 1 * li_rate, 1, 'D', 18, 12, 0, agoodsno); //Z_Prn_Text(22*li_rate, 1*li_rate, 1, 'D',18,12,0, as_qty) Z_Prn_Text(8 * li_rate, 12 * li_rate, 1, 'D', 18, 12, 0, abarcode); Z_Print_Out(1, cx); Z_Clear_Memory(); Z_ClosePrn(); } return 1; } #endif int OnPrint_4502(int sRow, int eRow, xstring PrintNumber) { if (sRow > eRow) return 1; if (sRow < 0) sRow = 1; if (eRow > dw_list.GetRowCount()) eRow = dw_list.GetRowCount(); int count = 0; if (PrintNumber != L"*") count = PrintNumber.toInt(); wchar_t* cutter = (wchar_t* )L"SET CUTTER OFF"; wchar_t* direction = (wchar_t* )L"DIRECTION 1"; wchar_t* t4502 = (wchar*)L"TSC TTP-244 Pro";//(wchar_t*)L"Bar Code Printer T-4502E"; wchar_t* str = t4502; openportW(str); for (int i = sRow; i <= eRow; i++) { int cx = count; if (cx == 0) cx = dw_list.GetItemInt(i, L"Quantity"); xstring goodsno = dw_list.GetItemString(i, L"GoodsNo"); xstring barcode = dw_list.GetItemString(i, L"BarCode"); xstring sdate = dw_list.GetItemString(i, L"OutstoreDate"); sdate = sdate.left(10); //for(int k=1;k<=cx;k++) //{ //trace(L"\r\n---"+k.toString()); //setup(s2a(L"38"),s2a(L"17"),s2a(L"3"),s2a(L"10"),s2a(L"0"),s2a(L"2"),s2a(L"0")); //sendcommand(s2a(L"SET CUTTER OFF")); //sendcommand(s2a(L"DIRECTION 1")); //clearbuffer(); /*Šªf: Spˆhj_cNäR0hx¼Spˆhj_ //SÃex: Šs}0cNäŠËSÀTSPL*/ //printerfont(s2a(L"16")/*x*/,s2a(L"24")/*y*/,s2a(L"2")/*font*/,s2a(L"0")/*rote*/,s2a(L"1")/*ratex*/,s2a(L"1")/*ratey*/,s2a(goodsno)); ////printerfont(s2a(L"178")/*x*/,s2a(L"24")/*y*/,s2a(L"2")/*font*/,s2a(L"0")/*rote*/,s2a(L"1")/*ratex*/,s2a(L"1")/*ratey*/,s2a(L"1")); //barcode(s2a(L"16")/*x*/,s2a(L"48")/*y*/,s2a(L"25")/*code*/,s2a(L"64")/*height*/,s2a(L"0")/*text*/,s2a(L"0")/*rote*/,s2a(L"2.9")/*barn*/,s2a(L"5.8")/*barw*/,s2a(barcode1)); //printerfont(s2a(L"64")/*x*/,s2a(L"116")/*y*/,s2a(L"2")/*font*/,s2a(L"0")/*rote*/,s2a(L"1")/*ratex*/,s2a(L"1")/*ratey*/,s2a(barcode1)); //printlabel(s2a(L"1"),s2a(L"1")); setup((char*)"40", (char*)"20", (char*)"3", (char*)"10", (char*)"0", (char*)"2", (char*)"0"); sendcommandW(cutter); sendcommandW(direction); clearbuffer(); /*Šªf: Spˆhj_cNäR0hx¼Spˆhj_ SÃex: Šs}0cNäŠËSÀTSPL*/ printerfontW((wchar_t*)L"16"/*x*/, (wchar_t*)L"24"/*y*/, (wchar_t*)L"2"/*font*/, (wchar_t*)L"0"/*rote*/, (wchar_t*)L"1"/*ratex*/, (wchar_t*)L"1"/*ratey*/, (wchar_t*)goodsno.c_str()); //printerfont(s2a(L"178")/*x*/,s2a(L"24")/*y*/,s2a(L"2")/*font*/,s2a(L"0")/*rote*/,s2a(L"1")/*ratex*/,s2a(L"1")/*ratey*/,s2a(L"1")); barcodeW((wchar_t*)L"16"/*x*/, (wchar_t*)L"48"/*y*/, (wchar_t*)L"25"/*code*/, (wchar_t*)L"64"/*height*/, (wchar_t*)L"0"/*text*/, (wchar_t*)L"0"/*rote*/, (wchar_t*)L"2.9"/*barn*/, (wchar_t*)L"5.8"/*barw*/, (wchar_t*)barcode.c_str()); printerfontW((wchar_t*)L"64"/*x*/, (wchar_t*)L"116"/*y*/, (wchar_t*)L"2"/*font*/, (wchar_t*)L"0"/*rote*/, (wchar_t*)L"1"/*ratex*/, (wchar_t*)L"1"/*ratey*/, (wchar_t*)barcode.c_str()); printerfontW((wchar_t*)L"64"/*x*/, (wchar_t*)L"140"/*y*/, (wchar_t*)L"2"/*font*/, (wchar_t*)L"0"/*rote*/, (wchar_t*)L"1"/*ratex*/, (wchar_t*)L"1"/*ratey*/, (wchar_t*)sdate.c_str()); printlabelW((wchar_t*)xstring(cx).c_str(), (wchar_t*)L"1"); clearbuffer(); /*Šªf: Spˆhj_cNäR0hx¼Spˆhj_ SÃex: Šs}0cNäŠËSÀTSPL*/ //} } closeport(); return 1; } int OnPrint(string Printer, int sRow, int eRow, string PrintNumber) { int prn = 1; return OnPrint_4502(sRow, eRow, PrintNumber); #if 0 if (Printer.find(L"T-4502E") >= 0) return OnPrint_4502(sRow, eRow, PrintNumber); else if (Printer.find(L"PPLA") >= 0) { if (Printer.find(L"PRN3") >= 0) prn = 3; if (Printer.find(L"PRN2") >= 0) prn = 2; return OnPrint_ppla(sRow, eRow, PrintNumber, prn); } else if (Printer.find(L"PPLZ") >= 0) { if (Printer.find(L"PRN3") >= 0) prn = 3; if (Printer.find(L"PRN2") >= 0) prn = 2; return OnPrint_pplz(sRow, eRow, PrintNumber, prn); } #endif return 1; } int OnPrint() { xaserverarg arg; arg.AddArg(L"Printer", Printer); arg.AddArg(L"PrintNumber", L"*"); arg.AddArg(L"PrintRowFrom", xstring(dw_list.GetRow())); arg.AddArg(L"PrintRowLast", xstring(dw_list.GetRow())); OpenWindow(L"dev:xpage[SampleBarcodePrint.vx]", arg); if (arg.GetArgString(L"process") == L"ok") { Printer = arg.GetArgString(L"Printer"); xstring PrintNumber = arg.GetArgString(L"PrintNumber"); xstring rowFrom = arg.GetArgString(L"PrintRowFrom"); xstring rowLast = arg.GetArgString(L"PrintRowLast"); OnPrint(Printer, rowFrom.toInt(), rowLast.toInt(), PrintNumber); } return 1; } int OnCombboChange(TEvent* evt, LPARAM lParam) { int h = xcombobox::GetCurSel(GetControl(L"datetype")->GetHWND()); if (h < 0) return 0; xcombobox::GetLBText(GetControl(L"datetype")->GetHWND(), h); return 1; } //T}NäYtN‹Nö int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnRowChanged(TEvent* evt, LPARAM p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; if (row < 1) return 1; if (row > dw_list.GetRowCount()) return 1; KXMLDOMElement e = dw_list.GetRowElement(row); string str = e.getAttribute(L"update.new"); if (str == L"1") dw_list.SetReadOnly(false); else { if (GetKeyState(0x11/*VK_CONTROL*/) & 0x8000) { dw_list.SetReadOnly(false); return 1; } dw_list.SetReadOnly(true); dw_list.AcceptText(); } return 1; } int OnAttachEvent() { //~Ñ[š]åQwgap¹QûN‹Nö AttachEvent(L"WM_XCOMMAND", (FEvent)&OutstoreSample3Win::OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent(L"WM_SETFOCUS", (FEvent)&OutstoreSample3Win::OnSetFocus); AttachEvent(L"dw_list", L"DWV_ITEMCHANGED", (FEvent)&OutstoreSample3Win::OnItemChanged); AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&OutstoreSample3Win::OnRowChanged); // AttachEvent(L"datetype", L"CBN_SELCHANGE", (FEvent)&OutstoreSample3Win::OnCombboChange); //TO list AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&OutstoreSample3Win::OnClicked); return 1; } int OnRetrieve() { xml x ; xaserverarg arg ; arg.AddArg(L"pageindex", L"1"); arg.AddArg(L"pagenumber", L""); xstring queryText = L""; if (xcontrol(GetControl(L"goodsno")).GetText() != L"") { xstring value = xcontrol(GetControl(L"goodsno")).GetText(); value = value.replace(L"'", L"''"); queryText += L"<item name='GoodsNo' op='like' value='" + value + L"%'/>"; } xstring datetype = xcontrol(GetControl(L"datetype")).GetText(); xstring sdate = dw_arg.GetItemString(1, L"startDate"); xstring edate = dw_arg.GetItemString(1, L"endDate"); if (datetype == L"^tNý") { if (sdate != L"") queryText += L"<item name='datepart(year,OutstoreDate)' op='=' value='" + sdate.left(4) + L"'/>"; } else if (datetype == L"gNý") { if (sdate != L"") queryText += L"<item name='datediff(month,OutstoreDate,&apos;" + sdate.left(4) + L"/" + sdate.mid(5, 2) + L"/01&apos;)' op='=' value='0'/>"; } else if (datetype == L"eåg") { if (sdate != L"") queryText += L"<item name='datediff(day,OutstoreDate,&apos;" + sdate.left(10) + L"&apos;)' op='=' value='0'/>"; } else if (datetype == L"^tNýƒVô") { if (sdate != L"") queryText += L"<item name='datepart(year,OutstoreDate)' op='&gt;=' value='" + sdate.left(4) + L"'/>"; if (edate != L"") queryText += L"<item name='datepart(year,OutstoreDate)' op='&lt;=' value='" + edate.left(4) + L"'/>"; } else if (datetype == L"gNýƒVô") { if (sdate != L"") queryText += L"<item name='datediff(month,OutstoreDate,&apos;" + sdate.left(4) + L"/" + sdate.mid(6, 2) + L"/01&apos;)' op='&lt;=' value='0'/>"; if (edate != L"") queryText += L"<item name='datediff(month,OutstoreDate,&apos;" + edate.left(4) + L"/" + edate.mid(6, 2) + L"/01&apos;)' op='&gt;=' value='0'/>"; } else if (datetype == L"eågƒVô") { if (sdate != L"") queryText += L"<item name='datediff(day,OutstoreDate,&apos;" + sdate.left(10) + L"&apos;)' op='&lt;=' value='0'/>"; if (edate != L"") queryText += L"<item name='datediff(day,OutstoreDate,&apos;" + edate.left(10) + L"&apos;)' op='&gt;=' value='0'/>"; } arg.AddArg(L"QueryTxt", L"<items join='and'>" + queryText + L"</items>"); trace(queryText); if (getUrl(L"/sale/data/SampleOut/entity/list", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); } return 1; } int rowinitial(int row) { string sdate = publiccode::GetCurrentDate(); dw_list.SetItemString(row, L"OutstoreDate", sdate); dw_list.SetItemString(row, L"CreateDate", sdate); string suserid = publiccode::GetUser().id; string susername = publiccode::GetUser().name; dw_list.SetItemString(row, L"CreatorID", suserid); dw_list.SetItemDisplayString(row, L"CreatorID", susername); return 1; } int onload() { dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/SampleOut/template/SampleOut/list"); dw_arg = GetControl(L"dw_arg"); dw_arg.openUrl(L"/sale/view/Sample/template/Sample/storeArg"); dw_arg.SetColHeaderHeight(0); dw_arg.SetRowSelectorWidth(0); dw_arg.SetHScrollState(false); dw_arg.SetVScrollState(false); dw_list.SetColumnState(L"CreateDate", false); xstring sdate = publiccode::GetCurrentDate(); xcontrol(GetControl(L"sdate")).SetText(sdate.left(10)); dw_arg.SetItemString(1, L"startDate", sdate.left(10)); OnAttachEvent(); return 1; } int onloaded() { SetAgent(); OnRetrieve(); //dw_list.InsertRow(0); //dw_list.SetRow(dw_list.GetRowCount()); //dw_list.ScrollToRow(dw_list.GetRowCount()); return 1; } };